package com.zbkj.crmeb.chant.dto;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 渠道商户表
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "ChannelMerchantSupplierDTO对象", description = "渠道商户供应商表")
public class ChannelMerchantSupplierDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "渠道id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    private Integer applyId;

    @ApiModelProperty(value = "渠道类型 1: SaaS 2: 固定选品  3: 供应商 8: 海外商户 9: 开放平台")
    private Integer channelType;

    @ApiModelProperty(value = "供应商来源： winery 等")
    private String source;

    @ApiModelProperty(value = "供应商id")
    @NotBlank(message = "供应商id")
    private String channelSupplierId;
    
    @ApiModelProperty(value = "供应商名称")
    private String channelName;

    @ApiModelProperty(value = "供应商编号")
    @NotBlank(message = "供应商编号不能为空")
    private String channelNameCode;

    @ApiModelProperty(value = "供应商类型: 1酒商 2酒庄 3商超、4电商平台")
    private Integer supplierType;

    @ApiModelProperty(value = "联系人")
    @NotBlank(message = "联系人不能为空")
    private String contactPerson;

    @ApiModelProperty(value = "联系电话区号")
    @NotBlank(message = "联系电话区号不能为空")
    private String areaCode;

    @ApiModelProperty(value = "联系电话")
    @NotBlank(message = "联系电话不能为空")
    private String contactPhone;
    
    @ApiModelProperty(value = "邮箱")
    private String email;
    
    @ApiModelProperty(value = "所属国家")
    private String country;
    
    @ApiModelProperty(value = "币种")
    private String currency;

    @ApiModelProperty(value = "是否自动上架（0否  1是）")
    private Integer automaticShelves;

    @ApiModelProperty(value = "可见品牌")
    private String brandIds;

    @ApiModelProperty(value = "可见供应商")
    private String suppliersIds;

    @ApiModelProperty(value = "运费模板id(1:大陆 2:港澳 3:意大利)")
    private String tempId;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "修改时间")
    private Date updateTime;

    @ApiModelProperty(value = "是否删除")
    private Boolean isDel;
    
    @ApiModelProperty(value = "账户冻结状态, 1为冻结 0 为正常")
    private Boolean status;
    
    @ApiModelProperty(value = "账户金额")
    private BigDecimal account;
    
    @ApiModelProperty(value = "可提现金额")
    private BigDecimal withdrawAccount;
    
    @ApiModelProperty(value = "冻结金额")
    private BigDecimal freezeAccount;
    
    @ApiModelProperty(value = "累计交易金额")
    private BigDecimal totalMoney;
    
    @ApiModelProperty(value = "累计已结算金额")
    private BigDecimal closeMoney;
    
    @ApiModelProperty(value = "账户预警金额")
    private BigDecimal warnMoney;

    @ApiModelProperty(value = "供应商自动推送关联商户（没有为null；多个,隔开）")
    private String confirmIds;

    @ApiModelProperty(value = "供应商包邮关联商户（没有为null；多个,隔开）")
    private String freeIds;

    @ApiModelProperty(value = "供应商加价率关联商户（没有为null；多个,隔开）")
    private String rateIds;

    @ApiModelProperty(value = "供应商关联商户额外加价率")
    private BigDecimal extraRate;

    @ApiModelProperty(value = "审核状态：0全部 1待审核 2审核未通过 9审核通过")
    private Integer auditStatus;

    @ApiModelProperty(value = "驳回原因")
    private String rejectReason;

}
